招生考试网
学历类| 阳光高考 研 究 生 自学考试 成人高考 专 升 本 中考会考 外语类| 四 六 级 职称英语 商务英语 公共英语 日语能力
资格类| 公 务 员 报 关 员 银行从业 司法考试 导 游 证 教师资格 财会类| 会 计 证 经 济 师 会计职称 注册会计 税 务 师
工程类| 一级建造 二级建造 造 价 师 造 价 员 咨 询 师 监 理 师 医学类| 卫生资格 执业医师 执业药师 执业护士 国际护士
计算机| 等级考试 软件水平 应用能力 其它类| 书画等级 美国高考 驾 驶 员 书法等级 少儿英语 报 检 员 单 证 员 出国留学
 招生考试网 - 自学考试 - 自考真题 - 正文
2011年自考C++程序设计试题
来源:fjzsksw.com 2011-6-8 16:31:24 【字体:小 大】

一、写出下列程序的执行结果:(每小题5分,共50分)

1、

#include

class sample

{

       int i;

       double d;

public:

       void setdata(int n) {i=n;}

       void setdata(double x) {d=x;}

       void disp()

       {

              cout<<”i=”<

       }

};

void main()

{

       sample s;

       s.setdata(10);

       s.setdata(15.6);

       s.disp();

}

答案:

 

2、

#include

double& fn(const double&pd)

{

       static double ad=32;

       ad+=pd;

       cout<<”fn being called … the value is:”<

       return ad;

}

void main()

{

       double a=345.6;

       double &pa=fn(a);

       cout<

a=55.5;

fn(a);

cout<

}

答案:

 

 

3、

#include

class sample

{

public:

       sample();

       sample(int);

       ~sample();

       void display();

protected:

       int x;

};

sample::sample()

{

       x=0;

       cout<<”constructing normally\n”;

}

sample::sample(int m)

{

       x=m;

       cout<<”constructing with a number:”<

}

sample::~sample()

{

       cout<<”destructing\n”;

}

void sample::display()

{

       cout<<”display a number:”<

}

void main()

{

       sample obj1;

       sample obj2(20);

       obj1.display();

       obj2.display();

}

答案:

4、

#include

class complex

{

public:

       complex(double ,double );

       complex(complex&);

       complex();

       complex operator +(complex&);

       complex& operator =(complex&);

       void display();

protected:

       double real;

       double image;

};

complex::complex(double x,double y)

{     real=x,image=y;}

complex::complex(complex& x)

{

       cout<<”Runing copy constructor\n”

       real=x.real;

       image=x.image;

}

complex::complex()

{real=image=0.0;}

complex complex::operator +(complex& x)

{

return complex(real+x.real,image+x.image);

}

complex& complex::operator =(complex&x)

{

       cout<<”Runing assign operator\n”;

       real+=x.real;

       image+=x.image;

       return *this;

}

viod complex::display()

{

cout<

}

void main()

{

       complex c1(2,5);

       complex c2(c1);

       complex c3;

       c3=c1+c2;

       c3.display();

}

答案:

 5、

#include

template T>

class sample

{

public:

       sample(){};

       sample(T x){n=x;}

       sample<T>& operator +(const sample<T>&);

       void disp(){cout<<”n=”<

protected:

       T n;

};

template T>

sample<T> & sample<T>::operator +(const sample<T> &s)

{

       static sample<T> temp;

       temp.n=n+s.n;

       return temp;

}

void main()

{

       sample<int> s1(10),s2(20),s3;

       s3=s1+s2;

       s3.disp();

}

答案:

6、

#include

class base

{

       int n;

public:

       base(int a)

       {

              cout<<”constructing base class with a number=”<

              n=a;

       }

       ~base()

       {     cout<<”destructing base class”< }

};

class derive:public base

{

       int m;

public:

       derive(int a,int b):base(a)

       {

              cout <<”constructing derive class with a number=”<

       }

       ~derive()

       {     cout<<”destructing derive class”<

};

void main()

{

       derive s(1,2);

}

答案:

7、

# include

class vehicle

{

int wheels;

float weight;

public:

virtual void message()

{cout<<”vehicle message\n”;}

};

class car:public vehicle

{

int passengers;

public:

void message(){

cout<<”car message\n”;}

};

class truck:public vehicle

{

int goods;

public:

void message(){

cout<<”truck message\n”;}

};

void main()

{

vehicle obj,*ptr;

car obj1;

truck obj2;

ptr=&obj;

prt->message();

ptr=&obj1;

ptr->message();

ptr=&obj2;

ptr->message()

}

答案:

8、

#include

void fc()

{

try

{throw “sos”;}

catch(int)

{cout<<”sos int”<

try{

throw 1;}

catch(const char * p){cout<<”sos string”<

}

void fb()

{

int *q=new int[100];

try{fc();}

catch(…){

delete []q;

throw;

}

}

void fa()

{

int *p=new int[100];

try{fb();}

catch(…){

delete []p;

throw;

}

}

void main()

{

try{fa();}

catch(…)

{cout<<”an error occurred while running”<

}

答案:

9、

#include

#include

class studentid

{

public:

       studentid(int id=0)

       {

       value=id;

              cout<<”Assigning student id”<

       }

       ~studentid()

       {

              cout<<”destructing id”<

       }

protected:

       int value;

};

class student

{

public:

       student(char *pname=”noname”,int ssid=0):id(ssid)

       {

              cout <<”constructing student”<

              strcpy(name,pname);

              name[sizeof(name)-1]=’\0’;

       }

       ~student()

       {

              cout<<”destructing student”<

       }

protected:

       char name[20];

       studentid id;

};

void main()

{

       student s(“randy”,9818);

}

答案:

 

 

 

 10、

#include

#include

class sample

{

public:

       sample(){cout<<”constructing object\n”;}

       ~sample(){cout<<”destructing object\n”;}

protected:

       int x;

};

void main()

{

       sample * p1, *p2;

       p1=new sample;

       p2=(sample *) malloc(sizeof(sample));

       delete p1;

       free((void *) p2);

}

答案:

 

 

网站版权与免责声明
①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权等问题,请在两周内来电联系.